#include"dao_gsl_fft.h"

DAO_INIT_MODULE;
DaoVmSpace *__daoVmSpace = NULL;

#ifdef __cplusplus
extern "C"{
#endif

static DaoNumItem constNumbers[] =
{

  { "backward", DAO_INTEGER, backward },
  { "forward", DAO_INTEGER, forward },
  { "gsl_fft_backward", DAO_INTEGER, gsl_fft_backward },
  { "gsl_fft_backward", DAO_INTEGER, gsl_fft_backward },
  { "gsl_fft_forward", DAO_INTEGER, gsl_fft_forward },
  { "gsl_fft_forward", DAO_INTEGER, gsl_fft_forward },
  { NULL, 0, 0 }
};
static void dao__gsl_fft_real_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_wavetable_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_wavetable_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_workspace_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_workspace_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_unpack( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_float_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_wavetable_float_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_wavetable_float_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_workspace_float_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_workspace_float_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_float_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_real_float_unpack( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_wavetable_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_wavetable_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_unpack( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_radix2_unpack( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_wavetable_float_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_wavetable_float_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_unpack( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_halfcomplex_float_radix2_unpack( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_dif_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_dif_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_dif_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_radix2_dif_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_wavetable_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_wavetable_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_workspace_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_workspace_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_memcpy( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_dif_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_dif_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_dif_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_radix2_dif_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_wavetable_float_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_wavetable_float_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_workspace_float_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_workspace_float_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_memcpy( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_fft_complex_float_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_transform( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_float_forward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_float_backward( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_dft_complex_float_transform( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_Funcs[] =
{
  { dao__gsl_fft_real_radix2_transform, "gsl_fft_real_radix2_transform( data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_fft_real_wavetable_alloc, "gsl_fft_real_wavetable_alloc( n : int )=>gsl_fft_real_wavetable" },
  { dao__gsl_fft_real_wavetable_free, "gsl_fft_real_wavetable_free( wavetable : gsl_fft_real_wavetable )" },
  { dao__gsl_fft_real_workspace_alloc, "gsl_fft_real_workspace_alloc( n : int )=>gsl_fft_real_workspace" },
  { dao__gsl_fft_real_workspace_free, "gsl_fft_real_workspace_free( workspace : gsl_fft_real_workspace )" },
  { dao__gsl_fft_real_transform, "gsl_fft_real_transform( data : array<double>, stride : int, n : int, wavetable : gsl_fft_real_wavetable, work : gsl_fft_real_workspace )=>int" },
  { dao__gsl_fft_real_unpack, "gsl_fft_real_unpack( real_coefficient : array<double>, complex_coefficient : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_fft_real_float_radix2_transform, "gsl_fft_real_float_radix2_transform( data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_fft_real_wavetable_float_alloc, "gsl_fft_real_wavetable_float_alloc( n : int )=>gsl_fft_real_wavetable_float" },
  { dao__gsl_fft_real_wavetable_float_free, "gsl_fft_real_wavetable_float_free( wavetable : gsl_fft_real_wavetable_float )" },
  { dao__gsl_fft_real_workspace_float_alloc, "gsl_fft_real_workspace_float_alloc( n : int )=>gsl_fft_real_workspace_float" },
  { dao__gsl_fft_real_workspace_float_free, "gsl_fft_real_workspace_float_free( workspace : gsl_fft_real_workspace_float )" },
  { dao__gsl_fft_real_float_transform, "gsl_fft_real_float_transform( data : array<float>, stride : int, n : int, wavetable : gsl_fft_real_wavetable_float, work : gsl_fft_real_workspace_float )=>int" },
  { dao__gsl_fft_real_float_unpack, "gsl_fft_real_float_unpack( real_float_coefficient : array<float>, complex_coefficient : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_radix2_backward, "gsl_fft_halfcomplex_radix2_backward( data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_radix2_inverse, "gsl_fft_halfcomplex_radix2_inverse( data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_radix2_transform, "gsl_fft_halfcomplex_radix2_transform( data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_wavetable_alloc, "gsl_fft_halfcomplex_wavetable_alloc( n : int )=>gsl_fft_halfcomplex_wavetable" },
  { dao__gsl_fft_halfcomplex_wavetable_free, "gsl_fft_halfcomplex_wavetable_free( wavetable : gsl_fft_halfcomplex_wavetable )" },
  { dao__gsl_fft_halfcomplex_backward, "gsl_fft_halfcomplex_backward( data : array<double>, stride : int, n : int, wavetable : gsl_fft_halfcomplex_wavetable, work : gsl_fft_real_workspace )=>int" },
  { dao__gsl_fft_halfcomplex_inverse, "gsl_fft_halfcomplex_inverse( data : array<double>, stride : int, n : int, wavetable : gsl_fft_halfcomplex_wavetable, work : gsl_fft_real_workspace )=>int" },
  { dao__gsl_fft_halfcomplex_transform, "gsl_fft_halfcomplex_transform( data : array<double>, stride : int, n : int, wavetable : gsl_fft_halfcomplex_wavetable, work : gsl_fft_real_workspace )=>int" },
  { dao__gsl_fft_halfcomplex_unpack, "gsl_fft_halfcomplex_unpack( halfcomplex_coefficient : array<double>, complex_coefficient : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_radix2_unpack, "gsl_fft_halfcomplex_radix2_unpack( halfcomplex_coefficient : array<double>, complex_coefficient : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_float_radix2_backward, "gsl_fft_halfcomplex_float_radix2_backward( data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_float_radix2_inverse, "gsl_fft_halfcomplex_float_radix2_inverse( data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_float_radix2_transform, "gsl_fft_halfcomplex_float_radix2_transform( data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_wavetable_float_alloc, "gsl_fft_halfcomplex_wavetable_float_alloc( n : int )=>gsl_fft_halfcomplex_wavetable_float" },
  { dao__gsl_fft_halfcomplex_wavetable_float_free, "gsl_fft_halfcomplex_wavetable_float_free( wavetable : gsl_fft_halfcomplex_wavetable_float )" },
  { dao__gsl_fft_halfcomplex_float_backward, "gsl_fft_halfcomplex_float_backward( data : array<float>, stride : int, n : int, wavetable : gsl_fft_halfcomplex_wavetable_float, work : gsl_fft_real_workspace_float )=>int" },
  { dao__gsl_fft_halfcomplex_float_inverse, "gsl_fft_halfcomplex_float_inverse( data : array<float>, stride : int, n : int, wavetable : gsl_fft_halfcomplex_wavetable_float, work : gsl_fft_real_workspace_float )=>int" },
  { dao__gsl_fft_halfcomplex_float_transform, "gsl_fft_halfcomplex_float_transform( data : array<float>, stride : int, n : int, wavetable : gsl_fft_halfcomplex_wavetable_float, work : gsl_fft_real_workspace_float )=>int" },
  { dao__gsl_fft_halfcomplex_float_unpack, "gsl_fft_halfcomplex_float_unpack( halfcomplex_coefficient : array<float>, complex_coefficient : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_fft_halfcomplex_float_radix2_unpack, "gsl_fft_halfcomplex_float_radix2_unpack( halfcomplex_coefficient : array<float>, complex_coefficient : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_radix2_forward, "gsl_fft_complex_radix2_forward( data : double, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_radix2_backward, "gsl_fft_complex_radix2_backward( data : double, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_radix2_inverse, "gsl_fft_complex_radix2_inverse( data : double, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_radix2_transform, "gsl_fft_complex_radix2_transform( data : double, stride : int, n : int, sign : int )=>int" },
  { dao__gsl_fft_complex_radix2_dif_forward, "gsl_fft_complex_radix2_dif_forward( data : double, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_radix2_dif_backward, "gsl_fft_complex_radix2_dif_backward( data : double, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_radix2_dif_inverse, "gsl_fft_complex_radix2_dif_inverse( data : double, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_radix2_dif_transform, "gsl_fft_complex_radix2_dif_transform( data : double, stride : int, n : int, sign : int )=>int" },
  { dao__gsl_fft_complex_wavetable_alloc, "gsl_fft_complex_wavetable_alloc( n : int )=>gsl_fft_complex_wavetable" },
  { dao__gsl_fft_complex_wavetable_free, "gsl_fft_complex_wavetable_free( wavetable : gsl_fft_complex_wavetable )" },
  { dao__gsl_fft_complex_workspace_alloc, "gsl_fft_complex_workspace_alloc( n : int )=>gsl_fft_complex_workspace" },
  { dao__gsl_fft_complex_workspace_free, "gsl_fft_complex_workspace_free( workspace : gsl_fft_complex_workspace )" },
  { dao__gsl_fft_complex_memcpy, "gsl_fft_complex_memcpy( dest : gsl_fft_complex_wavetable, src : gsl_fft_complex_wavetable )=>int" },
  { dao__gsl_fft_complex_forward, "gsl_fft_complex_forward( data : double, stride : int, n : int, wavetable : gsl_fft_complex_wavetable, work : gsl_fft_complex_workspace )=>int" },
  { dao__gsl_fft_complex_backward, "gsl_fft_complex_backward( data : double, stride : int, n : int, wavetable : gsl_fft_complex_wavetable, work : gsl_fft_complex_workspace )=>int" },
  { dao__gsl_fft_complex_inverse, "gsl_fft_complex_inverse( data : double, stride : int, n : int, wavetable : gsl_fft_complex_wavetable, work : gsl_fft_complex_workspace )=>int" },
  { dao__gsl_fft_complex_transform, "gsl_fft_complex_transform( data : double, stride : int, n : int, wavetable : gsl_fft_complex_wavetable, work : gsl_fft_complex_workspace, sign : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_forward, "gsl_fft_complex_float_radix2_forward( data : float, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_backward, "gsl_fft_complex_float_radix2_backward( data : float, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_inverse, "gsl_fft_complex_float_radix2_inverse( data : float, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_transform, "gsl_fft_complex_float_radix2_transform( data : float, stride : int, n : int, sign : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_dif_forward, "gsl_fft_complex_float_radix2_dif_forward( data : float, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_dif_backward, "gsl_fft_complex_float_radix2_dif_backward( data : float, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_dif_inverse, "gsl_fft_complex_float_radix2_dif_inverse( data : float, stride : int, n : int )=>int" },
  { dao__gsl_fft_complex_float_radix2_dif_transform, "gsl_fft_complex_float_radix2_dif_transform( data : float, stride : int, n : int, sign : int )=>int" },
  { dao__gsl_fft_complex_wavetable_float_alloc, "gsl_fft_complex_wavetable_float_alloc( n : int )=>gsl_fft_complex_wavetable_float" },
  { dao__gsl_fft_complex_wavetable_float_free, "gsl_fft_complex_wavetable_float_free( wavetable : gsl_fft_complex_wavetable_float )" },
  { dao__gsl_fft_complex_workspace_float_alloc, "gsl_fft_complex_workspace_float_alloc( n : int )=>gsl_fft_complex_workspace_float" },
  { dao__gsl_fft_complex_workspace_float_free, "gsl_fft_complex_workspace_float_free( workspace : gsl_fft_complex_workspace_float )" },
  { dao__gsl_fft_complex_float_memcpy, "gsl_fft_complex_float_memcpy( dest : gsl_fft_complex_wavetable_float, src : gsl_fft_complex_wavetable_float )=>int" },
  { dao__gsl_fft_complex_float_forward, "gsl_fft_complex_float_forward( data : float, stride : int, n : int, wavetable : gsl_fft_complex_wavetable_float, work : gsl_fft_complex_workspace_float )=>int" },
  { dao__gsl_fft_complex_float_backward, "gsl_fft_complex_float_backward( data : float, stride : int, n : int, wavetable : gsl_fft_complex_wavetable_float, work : gsl_fft_complex_workspace_float )=>int" },
  { dao__gsl_fft_complex_float_inverse, "gsl_fft_complex_float_inverse( data : float, stride : int, n : int, wavetable : gsl_fft_complex_wavetable_float, work : gsl_fft_complex_workspace_float )=>int" },
  { dao__gsl_fft_complex_float_transform, "gsl_fft_complex_float_transform( data : float, stride : int, n : int, wavetable : gsl_fft_complex_wavetable_float, work : gsl_fft_complex_workspace_float, sign : int )=>int" },
  { dao__gsl_dft_complex_forward, "gsl_dft_complex_forward( data : array<double>, stride : int, n : int, result : array<double> )=>int" },
  { dao__gsl_dft_complex_backward, "gsl_dft_complex_backward( data : array<double>, stride : int, n : int, result : array<double> )=>int" },
  { dao__gsl_dft_complex_inverse, "gsl_dft_complex_inverse( data : array<double>, stride : int, n : int, result : array<double> )=>int" },
  { dao__gsl_dft_complex_transform, "gsl_dft_complex_transform( data : array<double>, stride : int, n : int, result : array<double>, sign : int )=>int" },
  { dao__gsl_dft_complex_float_forward, "gsl_dft_complex_float_forward( data : array<float>, stride : int, n : int, result : array<float> )=>int" },
  { dao__gsl_dft_complex_float_backward, "gsl_dft_complex_float_backward( data : array<float>, stride : int, n : int, result : array<float> )=>int" },
  { dao__gsl_dft_complex_float_inverse, "gsl_dft_complex_float_inverse( data : array<float>, stride : int, n : int, result : array<float> )=>int" },
  { dao__gsl_dft_complex_float_transform, "gsl_dft_complex_float_transform( data : array<float>, stride : int, n : int, result : array<float>, sign : int )=>int" },
  { NULL, NULL }
};
/* gsl_fft_real.h */
static void dao__gsl_fft_real_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_real_radix2_transform = gsl_fft_real_radix2_transform( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_real_radix2_transform );
}
/* gsl_fft_real.h */
static void dao__gsl_fft_real_wavetable_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_real_wavetable* _gsl_fft_real_wavetable_alloc = gsl_fft_real_wavetable_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_real_wavetable_alloc, dao_gsl_fft_real_wavetable_Typer );
}
/* gsl_fft_real.h */
static void dao__gsl_fft_real_wavetable_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable* wavetable= (gsl_fft_real_wavetable*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_real_wavetable_Typer );

  gsl_fft_real_wavetable_free( wavetable );
}
/* gsl_fft_real.h */
static void dao__gsl_fft_real_workspace_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_real_workspace* _gsl_fft_real_workspace_alloc = gsl_fft_real_workspace_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_real_workspace_alloc, dao_gsl_fft_real_workspace_Typer );
}
/* gsl_fft_real.h */
static void dao__gsl_fft_real_workspace_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace* workspace= (gsl_fft_real_workspace*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_real_workspace_Typer );

  gsl_fft_real_workspace_free( workspace );
}
/* gsl_fft_real.h */
static void dao__gsl_fft_real_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_real_wavetable* wavetable= (gsl_fft_real_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_real_wavetable_Typer );
  gsl_fft_real_workspace* work= (gsl_fft_real_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_Typer );

  int _gsl_fft_real_transform = gsl_fft_real_transform( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_real_transform );
}
/* gsl_fft_real.h */
static void dao__gsl_fft_real_unpack( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* real_coefficient= (double*) DaoArray_ToDouble( _p[0]->v.array );
  double* complex_coefficient= (double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_fft_real_unpack = gsl_fft_real_unpack( real_coefficient, complex_coefficient, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_real_unpack );
}
/* gsl_fft_real_float.h */
static void dao__gsl_fft_real_float_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_real_float_radix2_transform = gsl_fft_real_float_radix2_transform( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_real_float_radix2_transform );
}
/* gsl_fft_real_float.h */
static void dao__gsl_fft_real_wavetable_float_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_real_wavetable_float* _gsl_fft_real_wavetable_float_alloc = gsl_fft_real_wavetable_float_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_real_wavetable_float_alloc, dao_gsl_fft_real_wavetable_float_Typer );
}
/* gsl_fft_real_float.h */
static void dao__gsl_fft_real_wavetable_float_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_wavetable_float* wavetable= (gsl_fft_real_wavetable_float*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_real_wavetable_float_Typer );

  gsl_fft_real_wavetable_float_free( wavetable );
}
/* gsl_fft_real_float.h */
static void dao__gsl_fft_real_workspace_float_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_real_workspace_float* _gsl_fft_real_workspace_float_alloc = gsl_fft_real_workspace_float_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_real_workspace_float_alloc, dao_gsl_fft_real_workspace_float_Typer );
}
/* gsl_fft_real_float.h */
static void dao__gsl_fft_real_workspace_float_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_real_workspace_float* workspace= (gsl_fft_real_workspace_float*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_real_workspace_float_Typer );

  gsl_fft_real_workspace_float_free( workspace );
}
/* gsl_fft_real_float.h */
static void dao__gsl_fft_real_float_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_real_wavetable_float* wavetable= (gsl_fft_real_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_real_wavetable_float_Typer );
  gsl_fft_real_workspace_float* work= (gsl_fft_real_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_float_Typer );

  int _gsl_fft_real_float_transform = gsl_fft_real_float_transform( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_real_float_transform );
}
/* gsl_fft_real_float.h */
static void dao__gsl_fft_real_float_unpack( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* real_float_coefficient= (float*) DaoArray_ToFloat( _p[0]->v.array );
  float* complex_coefficient= (float*) DaoArray_ToFloat( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_fft_real_float_unpack = gsl_fft_real_float_unpack( real_float_coefficient, complex_coefficient, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_real_float_unpack );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_halfcomplex_radix2_backward = gsl_fft_halfcomplex_radix2_backward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_radix2_backward );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_halfcomplex_radix2_inverse = gsl_fft_halfcomplex_radix2_inverse( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_radix2_inverse );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_halfcomplex_radix2_transform = gsl_fft_halfcomplex_radix2_transform( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_radix2_transform );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_wavetable_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_halfcomplex_wavetable* _gsl_fft_halfcomplex_wavetable_alloc = gsl_fft_halfcomplex_wavetable_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_halfcomplex_wavetable_alloc, dao_gsl_fft_halfcomplex_wavetable_Typer );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_wavetable_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable* wavetable= (gsl_fft_halfcomplex_wavetable*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_Typer );

  gsl_fft_halfcomplex_wavetable_free( wavetable );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_halfcomplex_wavetable* wavetable= (gsl_fft_halfcomplex_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_Typer );
  gsl_fft_real_workspace* work= (gsl_fft_real_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_Typer );

  int _gsl_fft_halfcomplex_backward = gsl_fft_halfcomplex_backward( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_backward );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_halfcomplex_wavetable* wavetable= (gsl_fft_halfcomplex_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_Typer );
  gsl_fft_real_workspace* work= (gsl_fft_real_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_Typer );

  int _gsl_fft_halfcomplex_inverse = gsl_fft_halfcomplex_inverse( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_inverse );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_halfcomplex_wavetable* wavetable= (gsl_fft_halfcomplex_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_Typer );
  gsl_fft_real_workspace* work= (gsl_fft_real_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_Typer );

  int _gsl_fft_halfcomplex_transform = gsl_fft_halfcomplex_transform( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_transform );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_unpack( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* halfcomplex_coefficient= (double*) DaoArray_ToDouble( _p[0]->v.array );
  double* complex_coefficient= (double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_fft_halfcomplex_unpack = gsl_fft_halfcomplex_unpack( halfcomplex_coefficient, complex_coefficient, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_unpack );
}
/* gsl_fft_halfcomplex.h */
static void dao__gsl_fft_halfcomplex_radix2_unpack( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* halfcomplex_coefficient= (double*) DaoArray_ToDouble( _p[0]->v.array );
  double* complex_coefficient= (double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_fft_halfcomplex_radix2_unpack = gsl_fft_halfcomplex_radix2_unpack( halfcomplex_coefficient, complex_coefficient, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_radix2_unpack );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_halfcomplex_float_radix2_backward = gsl_fft_halfcomplex_float_radix2_backward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_radix2_backward );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_halfcomplex_float_radix2_inverse = gsl_fft_halfcomplex_float_radix2_inverse( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_radix2_inverse );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_halfcomplex_float_radix2_transform = gsl_fft_halfcomplex_float_radix2_transform( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_radix2_transform );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_wavetable_float_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_halfcomplex_wavetable_float* _gsl_fft_halfcomplex_wavetable_float_alloc = gsl_fft_halfcomplex_wavetable_float_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_halfcomplex_wavetable_float_alloc, dao_gsl_fft_halfcomplex_wavetable_float_Typer );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_wavetable_float_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_halfcomplex_wavetable_float* wavetable= (gsl_fft_halfcomplex_wavetable_float*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_float_Typer );

  gsl_fft_halfcomplex_wavetable_float_free( wavetable );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_halfcomplex_wavetable_float* wavetable= (gsl_fft_halfcomplex_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_float_Typer );
  gsl_fft_real_workspace_float* work= (gsl_fft_real_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_float_Typer );

  int _gsl_fft_halfcomplex_float_backward = gsl_fft_halfcomplex_float_backward( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_backward );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_halfcomplex_wavetable_float* wavetable= (gsl_fft_halfcomplex_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_float_Typer );
  gsl_fft_real_workspace_float* work= (gsl_fft_real_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_float_Typer );

  int _gsl_fft_halfcomplex_float_inverse = gsl_fft_halfcomplex_float_inverse( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_inverse );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_halfcomplex_wavetable_float* wavetable= (gsl_fft_halfcomplex_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_halfcomplex_wavetable_float_Typer );
  gsl_fft_real_workspace_float* work= (gsl_fft_real_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_real_workspace_float_Typer );

  int _gsl_fft_halfcomplex_float_transform = gsl_fft_halfcomplex_float_transform( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_transform );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_unpack( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* halfcomplex_coefficient= (float*) DaoArray_ToFloat( _p[0]->v.array );
  float* complex_coefficient= (float*) DaoArray_ToFloat( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_fft_halfcomplex_float_unpack = gsl_fft_halfcomplex_float_unpack( halfcomplex_coefficient, complex_coefficient, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_unpack );
}
/* gsl_fft_halfcomplex_float.h */
static void dao__gsl_fft_halfcomplex_float_radix2_unpack( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* halfcomplex_coefficient= (float*) DaoArray_ToFloat( _p[0]->v.array );
  float* complex_coefficient= (float*) DaoArray_ToFloat( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_fft_halfcomplex_float_radix2_unpack = gsl_fft_halfcomplex_float_radix2_unpack( halfcomplex_coefficient, complex_coefficient, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_halfcomplex_float_radix2_unpack );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_radix2_forward = gsl_fft_complex_radix2_forward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_forward );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_radix2_backward = gsl_fft_complex_radix2_backward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_backward );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_radix2_inverse = gsl_fft_complex_radix2_inverse( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_inverse );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_direction sign= (gsl_fft_direction) _p[3]->v.i;

  int _gsl_fft_complex_radix2_transform = gsl_fft_complex_radix2_transform( data, stride, n, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_transform );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_dif_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_radix2_dif_forward = gsl_fft_complex_radix2_dif_forward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_dif_forward );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_dif_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_radix2_dif_backward = gsl_fft_complex_radix2_dif_backward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_dif_backward );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_dif_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_radix2_dif_inverse = gsl_fft_complex_radix2_dif_inverse( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_dif_inverse );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_radix2_dif_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_direction sign= (gsl_fft_direction) _p[3]->v.i;

  int _gsl_fft_complex_radix2_dif_transform = gsl_fft_complex_radix2_dif_transform( data, stride, n, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_radix2_dif_transform );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_wavetable_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_complex_wavetable* _gsl_fft_complex_wavetable_alloc = gsl_fft_complex_wavetable_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_complex_wavetable_alloc, dao_gsl_fft_complex_wavetable_Typer );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_wavetable_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable* wavetable= (gsl_fft_complex_wavetable*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_complex_wavetable_Typer );

  gsl_fft_complex_wavetable_free( wavetable );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_workspace_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_complex_workspace* _gsl_fft_complex_workspace_alloc = gsl_fft_complex_workspace_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_complex_workspace_alloc, dao_gsl_fft_complex_workspace_Typer );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_workspace_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace* workspace= (gsl_fft_complex_workspace*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_complex_workspace_Typer );

  gsl_fft_complex_workspace_free( workspace );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_memcpy( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable* dest= (gsl_fft_complex_wavetable*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_complex_wavetable_Typer );
  gsl_fft_complex_wavetable* src= (gsl_fft_complex_wavetable*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_fft_complex_wavetable_Typer );

  int _gsl_fft_complex_memcpy = gsl_fft_complex_memcpy( dest, src );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_memcpy );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable* wavetable= (gsl_fft_complex_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_Typer );
  gsl_fft_complex_workspace* work= (gsl_fft_complex_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_Typer );

  int _gsl_fft_complex_forward = gsl_fft_complex_forward( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_forward );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable* wavetable= (gsl_fft_complex_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_Typer );
  gsl_fft_complex_workspace* work= (gsl_fft_complex_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_Typer );

  int _gsl_fft_complex_backward = gsl_fft_complex_backward( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_backward );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable* wavetable= (gsl_fft_complex_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_Typer );
  gsl_fft_complex_workspace* work= (gsl_fft_complex_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_Typer );

  int _gsl_fft_complex_inverse = gsl_fft_complex_inverse( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_inverse );
}
/* gsl_fft_complex.h */
static void dao__gsl_fft_complex_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array data= (gsl_complex_packed_array) _p[0]->v.d;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable* wavetable= (gsl_fft_complex_wavetable*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_Typer );
  gsl_fft_complex_workspace* work= (gsl_fft_complex_workspace*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_Typer );
  gsl_fft_direction sign= (gsl_fft_direction) _p[5]->v.i;

  int _gsl_fft_complex_transform = gsl_fft_complex_transform( data, stride, n, wavetable, work, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_transform );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_float_radix2_forward = gsl_fft_complex_float_radix2_forward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_forward );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_float_radix2_backward = gsl_fft_complex_float_radix2_backward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_backward );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_float_radix2_inverse = gsl_fft_complex_float_radix2_inverse( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_inverse );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_direction sign= (gsl_fft_direction) _p[3]->v.i;

  int _gsl_fft_complex_float_radix2_transform = gsl_fft_complex_float_radix2_transform( data, stride, n, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_transform );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_dif_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_float_radix2_dif_forward = gsl_fft_complex_float_radix2_dif_forward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_dif_forward );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_dif_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_float_radix2_dif_backward = gsl_fft_complex_float_radix2_dif_backward( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_dif_backward );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_dif_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;

  int _gsl_fft_complex_float_radix2_dif_inverse = gsl_fft_complex_float_radix2_dif_inverse( data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_dif_inverse );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_radix2_dif_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_direction sign= (gsl_fft_direction) _p[3]->v.i;

  int _gsl_fft_complex_float_radix2_dif_transform = gsl_fft_complex_float_radix2_dif_transform( data, stride, n, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_radix2_dif_transform );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_wavetable_float_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_complex_wavetable_float* _gsl_fft_complex_wavetable_float_alloc = gsl_fft_complex_wavetable_float_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_complex_wavetable_float_alloc, dao_gsl_fft_complex_wavetable_float_Typer );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_wavetable_float_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float* wavetable= (gsl_fft_complex_wavetable_float*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_complex_wavetable_float_Typer );

  gsl_fft_complex_wavetable_float_free( wavetable );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_workspace_float_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_fft_complex_workspace_float* _gsl_fft_complex_workspace_float_alloc = gsl_fft_complex_workspace_float_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_fft_complex_workspace_float_alloc, dao_gsl_fft_complex_workspace_float_Typer );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_workspace_float_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_workspace_float* workspace= (gsl_fft_complex_workspace_float*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_complex_workspace_float_Typer );

  gsl_fft_complex_workspace_float_free( workspace );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_memcpy( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_fft_complex_wavetable_float* dest= (gsl_fft_complex_wavetable_float*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_fft_complex_wavetable_float_Typer );
  gsl_fft_complex_wavetable_float* src= (gsl_fft_complex_wavetable_float*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_fft_complex_wavetable_float_Typer );

  int _gsl_fft_complex_float_memcpy = gsl_fft_complex_float_memcpy( dest, src );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_memcpy );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable_float* wavetable= (gsl_fft_complex_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_float_Typer );
  gsl_fft_complex_workspace_float* work= (gsl_fft_complex_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_float_Typer );

  int _gsl_fft_complex_float_forward = gsl_fft_complex_float_forward( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_forward );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable_float* wavetable= (gsl_fft_complex_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_float_Typer );
  gsl_fft_complex_workspace_float* work= (gsl_fft_complex_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_float_Typer );

  int _gsl_fft_complex_float_backward = gsl_fft_complex_float_backward( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_backward );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable_float* wavetable= (gsl_fft_complex_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_float_Typer );
  gsl_fft_complex_workspace_float* work= (gsl_fft_complex_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_float_Typer );

  int _gsl_fft_complex_float_inverse = gsl_fft_complex_float_inverse( data, stride, n, wavetable, work );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_inverse );
}
/* gsl_fft_complex_float.h */
static void dao__gsl_fft_complex_float_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_complex_packed_array_float data= (gsl_complex_packed_array_float) _p[0]->v.f;
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  gsl_fft_complex_wavetable_float* wavetable= (gsl_fft_complex_wavetable_float*) DaoCData_CastData( _p[3]->v.cdata, dao_gsl_fft_complex_wavetable_float_Typer );
  gsl_fft_complex_workspace_float* work= (gsl_fft_complex_workspace_float*) DaoCData_CastData( _p[4]->v.cdata, dao_gsl_fft_complex_workspace_float_Typer );
  gsl_fft_direction sign= (gsl_fft_direction) _p[5]->v.i;

  int _gsl_fft_complex_float_transform = gsl_fft_complex_float_transform( data, stride, n, wavetable, work, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_fft_complex_float_transform );
}
/* gsl_dft_complex.h */
static void dao__gsl_dft_complex_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  double* result= (double*) DaoArray_ToDouble( _p[3]->v.array );

  int _gsl_dft_complex_forward = gsl_dft_complex_forward( data, stride, n, result );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_forward );
}
/* gsl_dft_complex.h */
static void dao__gsl_dft_complex_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  double* result= (double*) DaoArray_ToDouble( _p[3]->v.array );

  int _gsl_dft_complex_backward = gsl_dft_complex_backward( data, stride, n, result );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_backward );
}
/* gsl_dft_complex.h */
static void dao__gsl_dft_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  double* result= (double*) DaoArray_ToDouble( _p[3]->v.array );

  int _gsl_dft_complex_inverse = gsl_dft_complex_inverse( data, stride, n, result );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_inverse );
}
/* gsl_dft_complex.h */
static void dao__gsl_dft_complex_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  double* data= (double*) DaoArray_ToDouble( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  double* result= (double*) DaoArray_ToDouble( _p[3]->v.array );
  gsl_fft_direction sign= (gsl_fft_direction) _p[4]->v.i;

  int _gsl_dft_complex_transform = gsl_dft_complex_transform( data, stride, n, result, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_transform );
}
/* gsl_dft_complex_float.h */
static void dao__gsl_dft_complex_float_forward( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  float* result= (float*) DaoArray_ToFloat( _p[3]->v.array );

  int _gsl_dft_complex_float_forward = gsl_dft_complex_float_forward( data, stride, n, result );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_float_forward );
}
/* gsl_dft_complex_float.h */
static void dao__gsl_dft_complex_float_backward( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  float* result= (float*) DaoArray_ToFloat( _p[3]->v.array );

  int _gsl_dft_complex_float_backward = gsl_dft_complex_float_backward( data, stride, n, result );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_float_backward );
}
/* gsl_dft_complex_float.h */
static void dao__gsl_dft_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  float* result= (float*) DaoArray_ToFloat( _p[3]->v.array );

  int _gsl_dft_complex_float_inverse = gsl_dft_complex_float_inverse( data, stride, n, result );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_float_inverse );
}
/* gsl_dft_complex_float.h */
static void dao__gsl_dft_complex_float_transform( DaoContext *_ctx, DValue *_p[], int _n )
{
  float* data= (float*) DaoArray_ToFloat( _p[0]->v.array );
  size_t stride= (size_t) _p[1]->v.i;
  size_t n= (size_t) _p[2]->v.i;
  float* result= (float*) DaoArray_ToFloat( _p[3]->v.array );
  gsl_fft_direction sign= (gsl_fft_direction) _p[4]->v.i;

  int _gsl_dft_complex_float_transform = gsl_dft_complex_float_transform( data, stride, n, result, sign );
  DaoContext_PutInteger( _ctx, (int) _gsl_dft_complex_float_transform );
}

int DaoOnLoad( DaoVmSpace *vms, DaoNameSpace *ns )
{
  DaoTypeBase *typers[116];
  const char *aliases[1];
  __daoVmSpace = vms;
  typers[0] = dao__gsl_matrix_char_const_view_Typer,
  typers[1] = dao__gsl_matrix_char_view_Typer,
  typers[2] = dao__gsl_matrix_complex_const_view_Typer,
  typers[3] = dao__gsl_matrix_complex_float_const_view_Typer,
  typers[4] = dao__gsl_matrix_complex_float_view_Typer,
  typers[5] = dao__gsl_matrix_complex_long_double_const_view_Typer,
  typers[6] = dao__gsl_matrix_complex_long_double_view_Typer,
  typers[7] = dao__gsl_matrix_complex_view_Typer,
  typers[8] = dao__gsl_matrix_const_view_Typer,
  typers[9] = dao__gsl_matrix_float_const_view_Typer,
  typers[10] = dao__gsl_matrix_float_view_Typer,
  typers[11] = dao__gsl_matrix_int_const_view_Typer,
  typers[12] = dao__gsl_matrix_int_view_Typer,
  typers[13] = dao__gsl_matrix_long_const_view_Typer,
  typers[14] = dao__gsl_matrix_long_double_const_view_Typer,
  typers[15] = dao__gsl_matrix_long_double_view_Typer,
  typers[16] = dao__gsl_matrix_long_view_Typer,
  typers[17] = dao__gsl_matrix_short_const_view_Typer,
  typers[18] = dao__gsl_matrix_short_view_Typer,
  typers[19] = dao__gsl_matrix_uchar_const_view_Typer,
  typers[20] = dao__gsl_matrix_uchar_view_Typer,
  typers[21] = dao__gsl_matrix_uint_const_view_Typer,
  typers[22] = dao__gsl_matrix_uint_view_Typer,
  typers[23] = dao__gsl_matrix_ulong_const_view_Typer,
  typers[24] = dao__gsl_matrix_ulong_view_Typer,
  typers[25] = dao__gsl_matrix_ushort_const_view_Typer,
  typers[26] = dao__gsl_matrix_ushort_view_Typer,
  typers[27] = dao__gsl_matrix_view_Typer,
  typers[28] = dao__gsl_vector_char_const_view_Typer,
  typers[29] = dao__gsl_vector_char_view_Typer,
  typers[30] = dao__gsl_vector_complex_const_view_Typer,
  typers[31] = dao__gsl_vector_complex_float_const_view_Typer,
  typers[32] = dao__gsl_vector_complex_float_view_Typer,
  typers[33] = dao__gsl_vector_complex_long_double_const_view_Typer,
  typers[34] = dao__gsl_vector_complex_long_double_view_Typer,
  typers[35] = dao__gsl_vector_complex_view_Typer,
  typers[36] = dao__gsl_vector_const_view_Typer,
  typers[37] = dao__gsl_vector_float_const_view_Typer,
  typers[38] = dao__gsl_vector_float_view_Typer,
  typers[39] = dao__gsl_vector_int_const_view_Typer,
  typers[40] = dao__gsl_vector_int_view_Typer,
  typers[41] = dao__gsl_vector_long_const_view_Typer,
  typers[42] = dao__gsl_vector_long_double_const_view_Typer,
  typers[43] = dao__gsl_vector_long_double_view_Typer,
  typers[44] = dao__gsl_vector_long_view_Typer,
  typers[45] = dao__gsl_vector_short_const_view_Typer,
  typers[46] = dao__gsl_vector_short_view_Typer,
  typers[47] = dao__gsl_vector_uchar_const_view_Typer,
  typers[48] = dao__gsl_vector_uchar_view_Typer,
  typers[49] = dao__gsl_vector_uint_const_view_Typer,
  typers[50] = dao__gsl_vector_uint_view_Typer,
  typers[51] = dao__gsl_vector_ulong_const_view_Typer,
  typers[52] = dao__gsl_vector_ulong_view_Typer,
  typers[53] = dao__gsl_vector_ushort_const_view_Typer,
  typers[54] = dao__gsl_vector_ushort_view_Typer,
  typers[55] = dao__gsl_vector_view_Typer,
  typers[56] = dao_gsl_block_Typer,
  typers[57] = dao_gsl_block_char_Typer,
  typers[58] = dao_gsl_block_complex_Typer,
  typers[59] = dao_gsl_block_complex_float_Typer,
  typers[60] = dao_gsl_block_complex_long_double_Typer,
  typers[61] = dao_gsl_block_float_Typer,
  typers[62] = dao_gsl_block_int_Typer,
  typers[63] = dao_gsl_block_long_Typer,
  typers[64] = dao_gsl_block_long_double_Typer,
  typers[65] = dao_gsl_block_short_Typer,
  typers[66] = dao_gsl_block_uchar_Typer,
  typers[67] = dao_gsl_block_uint_Typer,
  typers[68] = dao_gsl_block_ulong_Typer,
  typers[69] = dao_gsl_block_ushort_Typer,
  typers[70] = dao_gsl_complex_Typer,
  typers[71] = dao_gsl_complex_float_Typer,
  typers[72] = dao_gsl_complex_long_double_Typer,
  typers[73] = dao_gsl_error_handler_t_Typer,
  typers[74] = dao_gsl_fft_complex_wavetable_Typer,
  typers[75] = dao_gsl_fft_complex_wavetable_float_Typer,
  typers[76] = dao_gsl_fft_complex_workspace_Typer,
  typers[77] = dao_gsl_fft_complex_workspace_float_Typer,
  typers[78] = dao_gsl_fft_halfcomplex_wavetable_Typer,
  typers[79] = dao_gsl_fft_halfcomplex_wavetable_float_Typer,
  typers[80] = dao_gsl_fft_real_wavetable_Typer,
  typers[81] = dao_gsl_fft_real_wavetable_float_Typer,
  typers[82] = dao_gsl_fft_real_workspace_Typer,
  typers[83] = dao_gsl_fft_real_workspace_float_Typer,
  typers[84] = dao_gsl_ieee_double_rep_Typer,
  typers[85] = dao_gsl_ieee_float_rep_Typer,
  typers[86] = dao_gsl_matrix_Typer,
  typers[87] = dao_gsl_matrix_char_Typer,
  typers[88] = dao_gsl_matrix_complex_Typer,
  typers[89] = dao_gsl_matrix_complex_float_Typer,
  typers[90] = dao_gsl_matrix_complex_long_double_Typer,
  typers[91] = dao_gsl_matrix_float_Typer,
  typers[92] = dao_gsl_matrix_int_Typer,
  typers[93] = dao_gsl_matrix_long_Typer,
  typers[94] = dao_gsl_matrix_long_double_Typer,
  typers[95] = dao_gsl_matrix_short_Typer,
  typers[96] = dao_gsl_matrix_uchar_Typer,
  typers[97] = dao_gsl_matrix_uint_Typer,
  typers[98] = dao_gsl_matrix_ulong_Typer,
  typers[99] = dao_gsl_matrix_ushort_Typer,
  typers[100] = dao_gsl_stream_handler_t_Typer,
  typers[101] = dao_gsl_vector_Typer,
  typers[102] = dao_gsl_vector_char_Typer,
  typers[103] = dao_gsl_vector_complex_Typer,
  typers[104] = dao_gsl_vector_complex_float_Typer,
  typers[105] = dao_gsl_vector_complex_long_double_Typer,
  typers[106] = dao_gsl_vector_float_Typer,
  typers[107] = dao_gsl_vector_int_Typer,
  typers[108] = dao_gsl_vector_long_Typer,
  typers[109] = dao_gsl_vector_long_double_Typer,
  typers[110] = dao_gsl_vector_short_Typer,
  typers[111] = dao_gsl_vector_uchar_Typer,
  typers[112] = dao_gsl_vector_uint_Typer,
  typers[113] = dao_gsl_vector_ulong_Typer,
  typers[114] = dao_gsl_vector_ushort_Typer,
  typers[115] = NULL;
  aliases[0] = NULL;
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_array" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_array_long_double" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_long_double" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_long_double_ptr" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_ptr" );
  DaoNameSpace_TypeDefine( ns, "float", "gsl_complex_packed_array_float" );
  DaoNameSpace_TypeDefine( ns, "float", "gsl_complex_packed_float" );
  DaoNameSpace_TypeDefine( ns, "float", "gsl_complex_packed_float_ptr" );
  DaoNameSpace_TypeDefine( ns, "int", "gsl_fft_direction" );
  DaoNameSpace_TypeDefine( ns, "int", "gsl_mode_t" );
  DaoNameSpace_TypeDefine( ns, "int", "gsl_prec_t" );
  DaoNameSpace_AddConstNumbers( ns, constNumbers );
  DaoNameSpace_WrapTypes( ns, typers );
  DaoNameSpace_WrapFunctions( ns, dao_Funcs );
  return 0;
}
#ifdef __cplusplus
}
#endif

